package org.ch02.test01.demo03;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;

/**
 * 获得某个类的Class对象 - 方法三
 * 对象.getClass()：获取对象的类的Class对象
 * class.对象.ggetSuperclass()：
 *
 * @author CSY
 * @date 2025 - 03 - 17
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception {
        Student stu = new Student();
        
        //1、获取Student类的Class对象
        Class<?> clazz = stu.getClass();

        //在反射中，把类的相关信息封装为相关的对象
        //2、获取类的构造方法
        Constructor<?> constructor = clazz.getConstructor();

        //3、实例化对象
        Object obj = constructor.newInstance();

        //4、向下转换
        if(obj instanceof Student) {
            Student s = (Student) obj;
            //5、调用方法
            s.sayHello("张三");
        }
    }
}
